home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Whiteline: delta
/
whiteline CD Series - delta.iso
/
dl_serie
/
updates
/
159
/
freedom.txt
< prev
next >
Wrap
Text File
|
1995-11-25
|
82KB
|
1,673 lines
Freedom™ V1.14a
---------------
("Hey, das Popup ist mir neu..." ;-))
05.07.1995
(c) 1995 by Christian Krüger und Kolja Koischwitz
("...die Jäger des verlorenen Bedienungskomforts...")
EnhancedGEM 2.25 (c) 1995 by Christian Grunenberg
XIMG-Decoder (c) by Dirk Haun
0. Einleitung
=============
Alle Software rüstet sich fürs Multitasking. Jeder halbwegs versierte
Programmierer hat inzwischen seine Dialoge ins Fenster verfrachtet,
die Zeit der Fluchecken ist vorbei! Übrig bleiben letzlich nur noch zwei
Relikte aus der Singel-Zeit: Der Fileselektor und die Alertbox. Bisher gab
es keine Rettung vor diesen Systemblockierern, doch damit ist jetzt
Schluß: Freedom™ ist da! ;-)
Die unglaublichen Features:
---------------------------
- mindestens 8 Nonmodale Fileselektoren gleichzeitig!
- komplett nebenläufig!
- Alertboxen optional im Fenster
- Programme, die VA_START unterstützen/eine Menüzeile haben,
müssen zT nichtmal blockiert werden!
- Unterstützung von langen Dateinamen
- Font, Größe und Farbenm des Fileselektors sind variabel
- Drag&Drop Fontprotokoll wird unterstützt
- Tastaturbelegung 99% Selectric-kompatibel
- Mehrfachfileselektion (natürlich auch Selectric-kompatibel)
- Bis zu 40 voreinstellbare Dateinamen, Pfade und Extensions
- History der letzten 20 ausgewählten Files
- Maximal intuitive Bedienung, kurze Wege, wenig Klicks
- Popups noch und nöcher... (o:
- Linkshänder-Mode (!!!!)
- Unix-Patterns (*,?,[]) sowie Extensionlisten ("*.TOS,*.PRG")
- Dateien/Ordnern können Ikonen zugeordnet werden
- Drag&Drop-Unterstützung (Pfade & Files können auf den Fileselektor
gezogen werden (AV- bzw MTOS-D&D) und umgekehrt
- Nachrichen, die Änderungen in Verzeichnissen bekanntgeben, werden
ausgewertet (SH_WDRAW, AV_PATH_UPDATE, SC_CHANGED) und versendet!
- Fuzzy-Namenserkennung! Freedom tut alles, um der aufrufenden
Applikation (auch unter SingelTOS) einen aussagekräftigen Namen
zu geben (Menüzeile, Xacc, AV-Protokoll...)
- Dateien löschen, Neue Ordner/Dateien erzeugen und Datei/Ordner-Info
- Dateien nach Maske suchen, selektieren und deselektieren
- Pfad oder selektierte Files können ins Clipboard exportiert werden
- Volle Kommunikation mit einem vorhandenen AV-Server (zB Thing)
- Dateien löschen und touchen
- Kopieren, verschieben per D&D und Klemmbrett, Kobold_2 wird autom.
benutzt, wenn er sich im Speicher befindet oder die Environment
Variable KOBOLD_PATH unter Multitasking den Pfad zum Kobold weist..
1. Warum gerade Freedom?
========================
Das Problem ist bekannt: Flydials, Fileselektoren und Alertboxen legen das
Multitasking lahm, indem sie den Bildschirm komplett fuer sich reservieren:
- Terminalprogramme hören auf, anzuwählen und kriegen
Übertragungs-Fehler beim Up-/Download
- GEM-Raytracer hören auf zu tracen
- GEM-Morpher hören auf zu morfen
- GEM-konforme Packer hören auf zu packen
(es sei denn, sie sind von Christian Grunenberg...)
- Die Zeit in Fenster-Uhren bleibt stehen
- Beim Druck auf F1 kommt nicht mehr der Kobold (o:
- Das MagiC-Popup ist nicht mehr erreichbar
- Die Menüzeile ist nicht mehr erreichbar
- Sie können beim Kopieren/Verschieben/Löschen und Formatieren nicht
weiterarbeiten, wenn das Programm dafür einen Dialog öffnet, wie es
bspw. die Shell Gemini tut
- usw usw
Sollten ihnen einige der oben genannten Punkte schonmal selbst aufgefallen
sein oder haben Sie sich sogar schonmal darüber schwarzgeärgert, dann
sollten Sie einfach mal einen Blick auf Freedom werfen:
2. Die Installation
===================
- FFSEL.PRG in den Auto-Ordner
- FREEDOM.APP in FREEDOM.ACC umbennen und als Accessory installieren
(unter MagiC/MiNT kann FREEDOM.APP auch später nachgestartet werden
bzw unter MagiC auch in den APPS Ordner oder unter MiNT ins GEM.CNF)
Für die Benutzer mit Speichermangel, die eine ausreichend schnelle Platte
(und einen ausreichend schnellen Rechner) haben, gibt es noch eine weitere
Möglichkeit: Zusätzlich zu FFSEL.PRG packt man eine Datei FFSEL.INF in den
Auto-Ordner, in der Pfad zu FREEDOM.APP (incl.des Filenamens) drinsteht,
etwa so:
C:\FREEDOM\FREEDOM.APP
Befindet sich Freedom dann nicht im Speicher, versucht der residente Teil,
es nachzuladen. Ein so nachgeladenes FREEDOM.APP hat zusätzlich die
Möglichkeit, sich nach einer bestimmten Zeit der Nichtbenutzung wieder aus
dem Speicher zu entfernen. Diese Zeit ist (minimal 5s) in der
Konfigurationsdatei FREEDOM.CNF (siehe späteres Kapitel) einstellbar.
Das Nachladen unter einem Multitasking-OS ist (fast) unproblematisch,
unter SingelTOS ist es nur mit Hilfe des Accessorys Chameleon (von Karsten
Isakovic) möglich. Wir raten aber dennoch dazu, Freedom besser fest zu
installieren.
Wer trotzdem das Nachladen mit dem Chameleon will, sollte die diesem Paket
beiliegende Version des Chameleons verwenden. Diese wurde so gepatcht, das
1. das beim Nachladen eines ACC's nicht mehr automatisch ein AC_OPEN an es
versendet wird, und 2. der nachvollziehbare Absturz beim appl_find("?AGI")
behoben ist.
Da von einigen Freedom-Benutzern der Wunsch geäußert wurde, (zwecks
Ausmerzung des störenden freien Speicherplatzes ;-)) Freedom zusammen mit
Selectric zu installieren, besteht diese Möglichkeit nun. Das zu diesem
Zweck in Umlauf gebrachte Programm KILLFSEL, welches nur Selectric's
Eintrag im Cookiejar löscht, ist überfüssig geworden. Freedom ist nun
selbst dazu in der Lage: Wenn FFSEL bei seiner Installation einen
FSEL-Cookie mit Versionsnummer <2.00 vorfindet, ersetzt es dessen Wert
durch einen Zeiger auf seine eigene Struktur. Wenn Sie nun noch das Glück
haben, das FFSEL sich nach SLECTRIC ins GEM hängt, passiert genau das
gewünschte: Freedom erscheint bei allen sauberen Programmen, Selectric
übernimmt den Rest sowie die Behandlung des 'Programm starten..' Eintrags
im MagiC-Popup.
Alternativ zu FFSEL.PRG können sie auch den FFSELR.PRG in den Auto-Ordner
packen. Der einzige Unterschied ist, das Fenster von gerade durch einen
Fileselektor blockierten Applikationen, für die eine Redraw-Anforderung
kommt, nicht ausgeblendet, sondern, wie es in früheren Freedom-Versionen
war, mit dem Freedom-Logo gefüllt werden. Das ist häßlicher und
inkompatibler als das neue Verfahren, spart jedoch auf langsamen Rechnern
uU einige überflüssige Redraws ein (Man stelle sich vor, unter dem
ausgeblendeten Fenster liegt zufällig eins von Calamus...). Dafür ist die
Redraw-Version eine kBs größer...
3. Funktionsweise (nur für Programmierer interessant!)
======================================================
Freedom besteht aus zwei Teilen:
- Einem Fileselektor/Alertboxen-'Server' (FREEDOM.APP), der als parallele
Applikation bzw. Accessory läuft, und darauf wartet, über eine
definierte Schnittstelle (bestehend aus einem Satz AES-Messages)
aktiviert zu werden. Er kann (nur vom Speicherplatz und den verfügbaren
Fenster-handles begrenzt) beliebig viele Nonmodale Alertboxen und
Fileselektoren öffnen. Der Server meldet sich beim Start über das
XAcc-Protokoll an und führt im erweiterten XAcc-Namen (hochtrabend)
"XFileSelect\0XFontAck".
- Einem residenten Teil (FFSEL.PRG), der Applikationen, die einen
Fileselektor bzw. eine Alertbox ausgeben wollen, den Programmfaden
"abnimmt", einen entsprechenden Request an den Server sendet, den er
ggf. vorher selbst parallel startet, und in einer Eventloop auf die
Antwort- Nachricht des Servers wartet. Innerhalb dieser Eventloop wird
gleichzeitig noch die Behandlung einiger anderer Messages
(Fenster-Redraw, Moven, Sizen, Toppen, Lowern) für die Zeit des aktiven
Alerts/Fileselektors durchgeführt, sowie die Menüzeile des aufrufenden
Programms dis- und wieder enabled. Durch ausgeklügelte Programmierung
ist dieser Teil bis zu 8 mal reentrant, dh es können bis zu 8
verschiedene Applikationen einen Alert bzw. einen Fileselektor offen
haben, bevor der Traphandler den Aufruf eines Fileselektors ignoriert
bzw. einen Alert zum System durchreicht.
Dieser Teil übernimmt nebenbei ggf. noch das Umsetzen der Server-
Antwort in eines der 3 Selectric- Protokolle. Das dabei entstehende
Problem, daß es nur einen Selectric-Cookie gibt, aber möglicherweise
mehrere Applikationen gleichzeitig über ihn kommunizieren, wurde auf ein
minimum reduziert...
Da der residente Teil im Namen der Applikation Nachrichten empfängt,
werden alle Nachrichten, bei denen es Sinn macht, der Applikation
nachgereicht. Explizit 'geschluckt' werden die folgenden:
(AC_CLOSE) ; Wegen Problemen mit dem Chameleon )o:
AC_OPEN
MN_SELECTED,
WM_CLOSED,WM_FULLED,WM_ARROWED,WM_MOVED,
WM_HSLID,WM_VSLID,WM_SIZED,WM_UNTOPPED,WM_TOPPED,WM_ONTOP,
WM_NEWTOP,WM_ICONIFY,WM_UNICONIFY,WM_BOTTOMED
VA_START,VA_STARTED,VA_DRAGACCWIND
AV_SENDKEY ; AV-Server sollten das Freedom-Protkoll
AV_STARTPROG ; unterstützen, wenn sie einen Fileselektor
AV_OPENWIND ; aufrufen
AV_OPENCONSOLE ;
AP_DRAGDROP ; wird mit DD_NAK beantwortet
4. Bedienung
============
Freedom verfügt extra für die Freunde der Mausbedienung über eine schier
unendliche Zahl von Popups. Die Meisten davon sind bei Freedom durch Klick
auf die Box erreichbar, in der der aktuelle Pfad zu sehen ist.
Wechsel des Laufwerks - per Maus - via Tastatur
-------------------------------------------------------------------------
Klick auf Laufwerksbuchstabenbestandteil des Control-L öffnet
Pfades öffnet ein Popup mit den vorhandenen das Popup ebenfalls
Laufwerkskennungen.
Alternativ:
Alt-Laufwerksbuchstabe
schaltet sofort um
Veränderung der Anzeigemaske - per Maus - via Tastatur
-------------------------------------------------------------------------
Klick auf die Anzeigemaske des Pfades
zeigt bei einem ..
.. Linksklick: die gerade sinnvollen Masken Control-Y
.. Rechtsklick: die benutzerdefinierten Masken Control-X
(+Shift, wenn Dateien
selektiert sind)
.. Doppelklick links: die Maskeneingabe Control-E
...Doppelklick rechts: Wechsel zwischen '*.*'
und der vom Programm übergebenen Maske
Alternativ:
Control-Tastenblock-1..0
schaltet zwischen den
ersten 10 benutzerdefin-
ierten Masken um,
Shift-Ctrl-Tastenblock-1..0
wählt Maske 11..20,
Control-Tastenblock-.
wählt die geklemmte Maske
Control-Tastenblock-*
wählt *.* als Maske
Verzeichnisebene wechseln - per Maus - via Tastatur
-------------------------------------------------------------------------
Klick mitten in den Pfad mit der linken
Maustaste auf ..
.. Verzeichnis: Popup mit alternativen Ver-
zeichnissen öffnet sich
.. Trenner (\): Der Pfad wird an dieser Stelle Control-1..0 geht 1..10
"abgeschnitten", was ein Ersatz Ebenen zurück
für das schnelle zurücksetzen
mittels "Mac-Path" darstellt
.. letzten \: Die Verzeichnisse in der
aktuellen Ebene kommen in einem
Popup
Klick in den Closer (links neben dem Pfad) Control-Backspace oder
geht eine Ebene zurück, mit einem Doppel-/ Control-Undo
Rechtsklick gehts ins Wurzelverzeichnis Shift-Control-Backspace
o. Shift-Cobtrol-Undo
Direkter Einfach- oder Doppelklick (je nach Ordner mit den Pfeil-
Einstellung) auf einen Ordner im Filefenster tasten anfahren und auf
wechselt in diesen Ordner Return/Enter hauen
Durch Doppel- bzw. Rechtsklick auf das Pfad- Control-P
Objekt irgendwo vor dem letzen Trenner (\)
erreicht man das Popup mit den benutzerde- Alternativ:
finierten Pfaden. Alternate-1..0
schaltet zwischen den
ersten 10 benutzerdefin-
ierten Pfaden um,
Alternate-Esc wählt den
geklemmten Pfad
Shift-Alternate-1..0
für Pfad 11..20
Dateien (de-)selektieren - per Maus - via Tastatur
-------------------------------------------------------------------------
Eine einzelne Datei kann durch einfachen
Linksklick selektiert werden.
Sollen mehrere Dateien selektiert werden, muss
die Maustaste gedrücktgehalten werden.
Dabei ist zu beachten, das die Aktion nach
einer gewissen Ruhephase zu Beginn als
'Greifen' zwecks Drag&Drop interpretiert wird.
Dieser Zeitraum ist jedoch konfigurierbar.
Das Fenster wird automatisch gescrollt, wenn
der Mauszeiger während des Selektierens an den
oberen bzw. unteren Rand stößt.
Möchten Sie mehrere Dateien selektieren, die
nicht nicht direkt aufeinander folgen, so
klicken Sie sie einzeln an und halten dabei
die Shift-Taste fest. Sie verhindert, das die
schon selektierten Dateien wieder deselektiert
werden.
Alle Dateien können durch einfachen Links- Control-A
klick auf den 'Alles selektieren'-Knopf rechts
vom Pfad-Objekt (de-)selektiert werden.
Durch einen Rechtsklick auf diesen Knopf wird Shift-Control-A
die aktuelle Selektion invertiert.
Dateien selelektieren nach Maske. Control-S
Ein Doppelklick links auf den 'Alles selek-
tieren'-Knopf öffnet einen Dialog, in dem Sie
eine Maske eingeben können. Bei Betätigen von
'Ok' werden die auf die Maske passenden Dateien
im aktuellen Fileselektor zusätzlich selektiert.
Dateien deselektieren nach Maske. Shift-Control-S
Ein Doppelclick rechts auf denselben Knopf
öffnet den Dialog zum deselektieren.
Das Popup mit den voreingestellten Files läßt Control-M
sich durch Rechtsklick auf das Wort "Datei:"
vor dem Editfeld erreichen. Mit einem Links-
klick bekommt man das History-Popup, das die
letzen (max. 20) ausgewählten Files zeigt. Control-<
Wird beim Auswählen einer Datei aus einem der
beiden Popup's eine Umschalttaste festgehalten,
so wird die Datei nur 'angefahren' und selek-
tiert, nicht jedoch der Fileselektor geschlos-
sen.
Mit den Pfeiltasten kann
die aktuell selektierte
Datei wie ein Cursor ver-
ändert werden.
Wird dabei Shift festge-
halten, so gehts seiten-
weise weiter, mit Control
und auch mit ClrHome kann
zum Anfang/Ende der Liste
gesprungen werden, womit
auch ein Scrollen per
Tastatur ermöglicht ist
(s. folgender Abschnitt)
Wenn Sie Freedom so konfiguriert haben, können
Sie auch mit einen Rechtsklick ins Filefenster
einem Linksklick mit gedrückter Shift-Taste
simulieren.
Aktuellen Zustand ins Klemmbrett sichern. Control-C
Zustand aus dem Klemmbrett wiederherstellen. Shift-Control-V
In den Dateien scrollen - per Maus - via Tastatur
--------------------------------------------------------------------------
Die einfachste Möglichkeit: Sie nehmen den (s.o.)
Slider durch einen einfachen Linksklick in die Control-Up, Control-Down
Hand. Das Dateifenster wird beim Scrollen in
Echtzeit aktualisiert. Alle anderen Bedienele-
mente des Sliders entsprechen denen von GEM-
Fenstern.
Wenn Sie Freedom so konfiguriert haben, können
Sie auch durch einen Rechtsklick direkt in das
Filefenster scrollen (ähnlich wie beim Desktop
'Thing', allerdings mit dynam. Scrollweite)
Veränderung der Sortierung - per Maus - via Tastatur
--------------------------------------------------------------------------
Rechts- oder Doppelklick auf den Slider Control-J
öffnet das Sortierungspopup (Sehr praktisch,
denn wenn man eine Datei sucht und sich deshalb Alternativ:
für eine andere Sortierung entscheidet, hat man Control-H: nach Namen
meist eh grad den Slider "in der Hand" Control-Z: nach Datum
Control-G: nach Größe
Control-T: nach Typ
Control-K: Keine Sort.
Control-R: Sort. revers
Die Typsortierung kann zZt nur über das Popup
an- und ausgeschaltet werden
Drag & Drop - per Maus - via Tastatur
--------------------------------------------------------------------------
Wird über selektierten Dateien die linke Maus- Alt-Taste festhalten,
taste festgehalten, erscheint nach kurzer Zeit mit den Pfeiltasten den
ein Geisterrahmen mit den Umrissen der selek- Mauszeiger über die Da-
tieren Objekte. Wird die Maustaste losgelassen, teien manövrieren, und
werden die Dateien an die Position unter dem mit Alt-Insert 'greifen'.
Mauszeiger 'abgeworfen'. Freedom zeigt während Dann können Sie mit den
der Drag&Drop Aktion unten im Infoobjekt an, Pfeiltasten überall hin-
was für eine Aktion durch das Drag&Drop ausge- transportiert werden.
löst wird. Werden die Dateien auf eine fremde (Zugegeben: Das ist kein
Applikationen gezogen, kann Freedom die Aus- Feature von Freedom (o:)
wirkungen nicht voraussehen ("tun Sie nichts
unüberlegtes" ;-)). Oft wird garnix passieren,
es sei denn, die Fenster eines AV-Servers (wie
'Thing' oder 'Gemini'), oder eines Programms,
das sich beim AV-Server angemeldet hat, sind
das Ziel.
Freedom kann auch mittels Drag&Drop kopieren bzw.
verschieben, wenn Sie Dateien aus oder auf Fenster
des AV-Servers ziehen, oder ein weiterer offener
Freedom-Fileselektor das Ziel ist. Ein weiterer
(nicht an eine Applikation gebundener) Freedom- auch mit Control-Help
Fileselektor läßt sich mit einem Doppel- bzw. oder Shift-Help
Rechtsklick auf das Freedom-Logo rechts oben
öffnen.
Freedoms Funktionen - per Maus - via Tastatur
--------------------------------------------------------------------------
Löschen: Selektieren Sie die zu löschenden Control-D
Objekte und klicken Sie auf den Mülleimer
unten links. Alternativ können Sie die Objekte
auch auf den Eimer ziehen.
Neues Objekt: Klicken Sie auf das Ordner- Control-N
Symbol unten links (das 2.). Ein Dialog
erscheint, über den Sie einen Ordner oder
eine (leere) Datei in dem aktuellen Verzeich-
nis anlegen können.
Objekt-Information: Selektieren Sie ein oder Control-I (Tab)
mehrere Objekte, deren Namen und/oder Attribute
Sie verändern möchten und klicken Sie mit der
linken Maustaste auf das Info-Symbol unten links
(das 3.). Alternativ können Sie die Objekte
auch aufs Icon ziehen.
Gesamt-Information ("Dateien-Zählung"): Shift-Control-I
Wählen Sie, nachdem Sie eine oder mehrere
Dateien selektiert haben, das Info-Symbol mit
der rechten Maustaste an, so wird eine
(rekursive) Dateien-Zählung über alle zur Zeit
selektieren Objekte in Gang gebracht.
Laufwerks-Info ("Dateien-Zählung"): Shift-Control-I
Klicken Sie das Info-Icon (mit links oder
rechts), ohne das Dateien selektiert sind, so
werden alle Dateien auf dem Laufwerk gezählt.
Touch: Control-B
Eine Funktion, die eher für Programmierer
interessant ist. Sie können sie nun auch per
Maus erreichen, indem Sie Dateien auf das
"Neuer Ordner"-Icon draggen.
Klemmbrett-Export: Control-C,Control-X
Der Zustand (Pfad und ggf. selektierte Dateien)
wird ins Klemmbrett exportiert. Dateien selektieren
und auf das Klemmbrett-Icon ziehen. Bei Control-X
wird zusätzlich eine Verschiebe-Markierung gesetzt
Klemmbrett-Import (Kopieren/Verschieben) Control-V
Klemmbrett mit links anklicken und Dateien ins
Verzeichnisfenster draggen. Bei gedrückter
Ctrl-Taste wird Verschoben. Wurden die Dateien
mit Control-X geklemmt und nun mit Control-V
geholt, wird ebenfalls verschoben.
Klemmbrett-Import (Zustand wiederherstellen): Shift-Control-V
Zustand aus dem Klemmbrett wiederherstellen.
Klemmbrett-Icon mit rechts anklicken. So ist
auch ein "Austausch" mit dem Desktop Gemini
möglich: In Gemini kann die aktuelle Selektion
in einem Fenster mit ^C exportiert und dann in
Freedom mit ^V wieder importiert werden. Leider
geht's in die andere Richtung (wg. fehlender
Funktion in Gemini) nicht!
Außerdem kann nun wieder eine Dateiliste Shift-Control-C
formatiert mit einem Formatstring (#NICEFORMAT)
ins Klemmbrett exportiert werden, etwa, um sie
in einem anderen Programm einzubinden. Dazu ist
nur das Anwählen der gewünschten Dateien und
ein folgender Doppelklick auf das Klemmbrett-
Icon nötig. Die so exportierten Dateien können
nicht wieder mit ^V Importiert werden.
Dateien suchen: Lupe unten links anwählen. Control-F
Ein Dialog erscheint, in dem Sie eine Such-
Maske eintippen können, und angeben dürfen,
wo gesucht werden soll. Die Environment-Var.
DRIVEMAP wird, wenn gesetzt, bei der Suche
auf allen Laufwerken beachtet. Mit 'Ok' wird
die Suche gestartet. ESC bricht die Suche ab.
Wurde eine Datei gefunden, erscheint ihr Name
in dem breiten Knopf unter der Suchmaske.
In diesem Fall haben Sie 4 Auswahlmöglichkeiten:
breiter Knopf: Datei wird im aufrufenden
Fileselektor selektiert und an die Applikation
ausgeliefert.
Ok: Datei wird im aufrufenden Selektor
selektiert. Bei einem Rechts-/Doppelklick die-
selbe Wirkung der 'breite Knopf'..
Weiter: Es wird eine Weitere auf die Maske
passende Datei gesucht.
Abbruch: Suchdialog ohne Aktion schließen.
Freedom stellt normalerweise zwischen einem
Suchdialog und dem aufrufenden Fileselektor
eine "unsichtbare" Verbindung her um dann, wenn
sie im Suchdialog eine Datei auswählen, diese
im zugehörigen Fileselektor zu selektieren. Da
Sie so nur einen Suchdialog pro Fileselektor
öffnen können, gibt es noch die Möglichkeit,
bel. viele "ungebundenene" Suchdialoge mit Shift-Control-F
einem Rechtsklick auf die Lupe zu öffnen.
(Wenn sie das ihrer Platte antun wollen.. ;-))
Objekt öffnen: Ist vor allem für Benutzer von Datei(en) selektieren
Multitasking-Betriebssystemen wie MagiC oder und Control-O drücken
MTOS interessant: Ein rechter Doppelklick auf
ein Objekt bewirkt das 'Öffnen' des Objektes, Alternativ Control-Return
d.h.: Handelt es sich um ein Programm, so
wird es gestartet, ansonsten wird ggf. einem
konfigurierbaren Viewer eine Nachricht mit der
selektierten Datei gesendet.
Freedom startet den Viewer auch parallel nach,
wenn er ihn nicht im Speicher antrifft. Da
dies insgesamt nicht sehr flexibel ist,
überläßt Freedom das Öffnen dem AV-Server,
sofern ein solcher vorhanden ist. Der beachtet
dabei dann die angemeldeten Applikationen usw.
Ausserdem lassen sich dann auch Verzeichnisse
'öffnen'.
Der Autolocator - eine Wissenschaft für sich..
----------------------------------------------
Der Autolocator eines gewissen anderen Fileselektors war noch einfach,
doch mit Freedom wird auch das anders (o: Jetzt endlich kommen auch
eingeschworene Feinde des Autolocators in den Genuss seiner
Funktionalität. Mit Freedom kommt der 'Einmal-Autolocator', wie man ihn
schon von diversen Commandline-Shells als 'Completion' kennt: Ist der
ständige Autolocator abgeschaltet, kann mit Tab ein einmaliger Autolocator
ausgelöst werden. Da hier ein offensichtlicher Konflikt mit der
Funktionalität 'Objekt-Info' (auch Tab) vorhanden ist, und wir es (wie
auch sonst) allen recht machen wollen, ist die Tab-Taste auf eine der
beiden Funktionalitäten konfigurierbar. Objekt-Info ist ja zusätzlich mit
Control-I erreichbar, der einmalige Autolocator liegt zusätzlich (fest)
auf Control-Tab.
Freedoms Autolocator sucht standardmäßig nach Ordnern und Dateien. Wird
zusätzlich die Shift-Taste gedrückthalten, wird nur auf Dateien gematcht.
Eine nochmalige Beschleunigung des Autolocatens bringt das 'Cycle'-Feature
des einmaligen Autolocators. Wird derselbe nämlich mehrfach hintereinander
ausgelöst, geht er auch hintereinander alle Dateien durch, auf die das
schon Eingetippte passt.
Das Klemmbrett
--------------
In der (aktuellen) Version 1.14 wurde die Klemmbrettfunktion erheblich
verbessert und verfeinert. Prinzipiell dient das Klemmbrett nun dazu,
Dateinamen zur späteren Verwendung oder zur Weitergabe an andere Programme
zwischenzuspeichern (Die Datei SCRAP.TXT im System-Klemmbrett wird dazu
benutzt). Um Dateien auf dem Klemmbrett zwischenzuspeichern, selektieren
Sie sie einfach und ziehen sie dann auf das Klemmbretticon. Eine weitere
Möglichkeit ist, ^C oder ^X zu drücken. Zum Zurückholen der Dateien
klicken Sie mit links auf das Klemmbrett und halten sofort die Dateien "in
der Hand". Nun haben sie die schon von vorherigen Versionen bekannten
Möglichkeiten, die Dateien wieder abzuwerfen: Über anderen Applikationen,
über dem Mülleimer/Info-Icon/Eingabefeld/Pfadfeld und der Datei-Listbox
(zum Kopieren). Das Kopieren/Verschieben bzw Dateien auswählen (mit Shift)
können sie auch per Tastatur, mittels ^V. Je nachdem, ob sie die Dateien
mit ^C oder ^X auf das Klemmbrett befördert haben, werden sie Ihnen bei ^V
zum Kopieren oder Verschieben angeboten. Halten sie stattdessen zusätzlich
Shift fest, werden die Datei aus dem Klemmbrett wie gehabt selektiert. Das
ist nebenbei eine gute Möglichkeit, wieder in den Herkunftspfad zu
gelangen (Das, was man bei Selectric einstellen konnte), nachdem Sie mit
dem Kopieren fertig sind. Das also, was in der Version 1.13 als "Zustand
wiederherstellen" auf ^V lag, ist nun mit +^V zu erreichen. Ausserdem
bietet Freedom ja auch noch das Feature, eine Dateilist nach einem
Formatstring (#NICEFORMAT) formatiert ins System-Klemmbrett zu sichern.
Diese Funktion liegt wie gehabt auf +^C bzw. Doppel/-Rechtsklick auf das
Klemmbrett-Icon. Eine solche Dateiliste läßt sich im Normalfall _nicht_
nach der oben beschriebenen Methode, etwa mit ^V, "zurückholen".
Um es nochmal zu betonen: Es wird bei ^C/^X lediglich eine Liste von
Dateinamen als SCRAP.TXT gemerkt. Es werden _keine_ Dateiinhalte
gespeichert. Es ist demnach nicht möglich, Dateien per ^C aufs Klemmbrett
zu sichern, zu löschen, und dann woanders wieder mit ^V "einzukleben". Die
Herkunftsdateien sind dann einfach nicht mehr vorhanden!! Wer etwas
verschieben will, sollte das zB über ^X machen. Die Dateien werden hier
(im Gegensatz zum "normalen" Verständnis der Fkt. "Cut") erst während des
später angeworfenen Verschiebe-Vorgangs gelöscht. Für die Interessierten:
Ob eine Dateiliste mit ^X oder ^V geklemmt wurde, merkt sich Freedom
(frecherweise (o:) über das Archiv-Bit der Datei SCRAP.TXT. Bei ^X wird
das (normalerweise gesetzte) Bit gelöscht.
Ganz nebenbei: Man kann nun auch Dateien draggen, wenn Freedom als modaler
Dialog erscheint!
Sechs kleine Helferlein
----------------------
- Das Filepopup: Mal ehrlich: Wie oft arbeiten sie tage- oder sogar
wochenlang immer nur mit den gleichen 4 Dateien, und
suchen sie aber tagtäglich wieder mit ihrem Fileselektor.
Das muß nicht sein! (o: In der Freedom-Konfigurations-
datei können Sie bis zu 40 Dateien mit ihrem vollen Pfad
eintragen, die sie dann in Freedom durch einen einfachen
Klick aus einem Popup holen. Ihr Fileselektor nimmt ihnen
dann alles ab: Wechsel in das Verzeichnis, Datei
selektieren und 'Ok' drücken. Dieses Popup kann gefiltert
mit der aktuellen Maske und auch ungefiltert geöffnet
werden (Doppelklick)!
- Das History-
popup: Nun hat Freedom endlich auch eine History. Diese bleibt
(wenn in der Konfig-Datei ein History-File angegeben ist)
auch erhalten, wenn Sie den Rechner ausschalten! In
diesem Popup finden Sie immer die letzten (max. 40) Files
mit vollem Pfad, die Sie in ihrem Fileselektor ausgewählt
haben. Dieses Popup kann gefiltert mit der aktuellen Maske
und auch ungefiltert geöffnet werden (Doppelklick)!
- Das Masken- &
- das Pfadpopup: Hatte beides auch schon der Fileselektor, den Sie vor
Freedom benutzt haben. Auch mit Freedom können Sie
Einträge in diesen Popups 'ersetzen', indem Sie einen
Doppel- oder Shift-Klick machen. So wird die aktuelle
Auswahlmaske bzw. der komplette aktuelle Pfad in das
jeweilige Popup übernommen. Das hat allerdings nur
temporären Charakter, da es sich (noch) nicht abspeichern
läßt. Möchten Sie also einen festen Eintrag in eines der
Popups neu aufnehmen, führt zZt kein Weg an der
Konfigurationsdatei vorbei.
- Das 'mögliche
Masken'-Popup: In diesem Popup sind immer nur die Masken zu sehen, zu
denen im aktuellen Verzeichnis auch passende Dateien
existieren. Der erste Eintrag in diesem Popup ist immer
'*.*'.
- Das Dateityp-
Popup: ..erreichen sie mit einem rechten Doppelklick auf die
Extension. Es zeigt die Namen von allen in der Konfig-
datei definierten Dateitypen. Wählen Sie einen davon aus,
so wird er in spitzen Klammern als Extension übernommen.
Halten sie Shift dabei fest, so wird der ausgewählte Typ
mit Komma getrennt an die aktuelle Extension angehängt.
Einige letzte Bemerkungen zur Bedienung
---------------------------------------
- Das kleine Symbol unten rechts im Fileselektor dient dazu, Freedom in
der Größe zu verändern. Dabei wird online die resultierende Größe des
Filefensters in Spalten/Zeilen angezeigt.
- An vielen Stellen ist der Fileselektor so ausgelegt, das es
'zwei-Wege'-bedienbar ist, will sagen: Die einen halten lieber während
einer Aktion die ganze Zeit die Maustaste fest, die anderen klicken
lieber am Anfang und am Ende einmal kurz. Freedom kann beides, und zwar
fast überall: Bei allen Popups, beim Slider, bei der Fluchecke (falls
Freedom mal modal kommen muss), beim Aufziehen ('Sizen') des
Fileselektors und schließlich sogar beim Drag&Drop (Ctrl o. Alt beim
'Greifen' festhalten).
- Der 'Weiter'-Knopf im Such-Dialog hat noch einige Besonderheiten: Für
Mausbenutzer ist er so gestaltet, das man die Maustaste auf ihm auch
gedrückt halten kann, um so quasi schnell 'vorzuspulen', wenn viele
Dateien gefunden werden, die einen eigentlich gar nicht interessieren.
Dies läßt sich auch per Tastatur (Alt-W) erreichen, wobei dabei der
'Nachlauf' von Tastatur-Events unterdrückt wird!
- Wenn angeschaltet, können Freedom und seine Alertboxen vollständig im
Hintergrund bedient werden, ohne das die rechte Maustaste dabei
gedrücktgehalten werden muss. Wollen Sie trotzdem einmal ein Fenster von
Freedom in den Vordergrund holen, brauchen Sie nicht unbedingt auf die
Fenstertitelzeile klicken: Ein kurzer Klick auf irgendeine
"funktionslose" Stelle im Dialog hat dieselbe Wirkung!
5. KurzÜberblick über alle Tastenkombinationen von Freedom
==========================================================
^ bedeutet "zusammen mit Control"
+ bedeutet "zusammen mit Shift"
Alt A-Z: Laufwerk umschalten
^BS,
^Undo: Eine Direktory-Ebene zurück
^A: Alles Selektieren
+^A: Selektion Invertieren
^D: Selektierte Dateien löschen
^N: Neues Objekt
^I: Objekt-Information
+^I: Dateien-Zählung bzw. Laufwerks-Infomation
^B: Touch
Tab: Objekt-Information ODER Autolocator (Wenn '#SHELLTAB' gesetzt)
^Tab: einmaliger Autolocator (zyklisch, Ordner und Files)
+^Tab: einmaliger Autolocator (zyklisch, nur Files)
^F: An aktuellen Filselektor gebundenen Suchdialog öffnen (F wie finde)
+^F: Ungebundenen Suchdialog öffnen
^C: Momentanen Status ins Klemmbrett sichern
^X: Dateien auf dem klemmbrett sichern (mit Verschiebe-Markierung)
^V: Dateien aus dem Klemmbrett kopieren/verschieben
+^V: Status aus dem Klemmbrett wiederherstellen
+^C: Dateiliste nach Formatstring #NICEFORMAT ins Klemmbrett
^H, Sortierung nach Namen (H wie Selectric ;-))
^Z, " " Datum (Z wie Zeit)
^G, " " Größe
^T, " " Endung (T wie Typ)
^K, unsortiert (K wie Keine)
^R: Sortierrichtung umkehren (R wie Richtung)
+^S: Dateien deselektieren nach Maske
^S: Dateien selektieren nach Maske
^E: Neue Maske eingeben (E wie Extension)
^Y: Popup der vorhandenen Ext. öffnen (Y wie schön nah an Control ;-))
^P: Pfad-Popup öffnen
^J: Sortierungs-Popup öffnen (J wie keine andere Taste mehr übrig)
+^X: Popup der User-Extensions öffnen (X wie eXtension)
^M: Datei-Popup (gefiltert) öffnen
+^M: Datei-Popup (ungefiltert) öffnen
^<: History-Popup (gefiltert) öffnen
+^<: History-Popup (ungefiltert) öffnen
^L: Drive-Popup öffnen (L wie Laufwerk)
^W: Fenster wechseln
+^W: Fenster rückwärts wechseln
Alt ^W: Globaler Fensterwechsel (nur mit AV-Server)
^Return,
^O: Selektiertes Objekt öffnen
^1-0: 1 bis 10 Verzeichnisebenen zurückgehen
Alt Esc: Den geklemmten Pfad auswählen
Alt 1-0: Einen der ersten 10 Benutzer-Pfade auswahlen
+Alt 1-0: Benutzer-Pfad 11..20 auswählen
^TB-.: Die geklemmte Extension auswählen
^TB-1-0: Eine der ersten 10 Benutzer-Extensions wählen
+^TB-1-0: Benutzer-Extension 11..20 auswählen
^TB-*: *.* als Extension wählen
TB +: Entspricht: Crs-Dn+Klick auf 'Ok'
TB -: Entspricht: Crs-Up+Klick auf 'Ok'
+Esc,
^Esc: Verzeichnis neu einlesen
Esc: Editfeld löschen
Return,
Enter: Bedient "Ok" (Wenn ein Ordner selektiert ist, wird er geöffnet)
+Return,
+Enter: Bedient "Ok", deselektiert vorher alle Dateien, so das ggf. der
im Editfeld eingegebene Name zum Zuge kommt
^Q,^U,
Undo: Bedient "Abbruch"
Help: Freedom-Info
+Help,
^Help: Neuen (nicht applikationsgebundenen) Fileselektor aufmachen
Alt-^Space: aktuellen Fileselektor/Alert (de-)iconifizieren
^Up,^Dn: Scrollpfeile bedienen
Up,Dn: Aktuell selektierte Datei wie einen Cursor bewegen
+Up,+Dn: Aktuell selektierte Datei wie einen Cursor seitenweise bewegen
ClrHome: Ersten Eintrag im aktuellen Verzeichnis selektieren
+ClrHome: Letzten Eintrag im aktuellen Verzeichnis selektieren
Die Funktionstasten F1..F10, Shift-F1..F10 (F11..F20) sind nun frei belegbar.
6. Nebenläufigkeit
==================
Seit der Version 1.13 ist Freedom komplett nebenläufig. Genau wie in einem
kooperativen Betriebssystem "dispatcht" (also verteilt) Freedom intern die
Rechenzeit zwischen verschiedenen, gleichzeitig laufenden Aufgaben, und
gibt dabei natürlich auch regelmäßig Rechenzeit an das System ab. Dadurch
können sie nicht nur auch unter normalen (kooperativen) TOS-Versionen
weiterarbeiten, während Freedom Dateien sucht bzw. zählt oder gerade ein
sehr langes Verzeichnis einließt, sondern sie können sogar _innerhalb_ von
Freedom weiterarbeiten! Jede Aktion, die sie in Freedom anwerfen (Suchen,
löschen, Touch, Dateien zählen, Verzeichniss einlesen, Kopieren und
Verschieben) wird durch Freedom als extra Aufgabe (Task) verwaltet. Sie
können beliebig viele dieser Aufgaben anwerfen, sie laufen alle parallel
ab, und sogar im Hintergrund weiter, wenn sie ein Popup geöffnet haben
bzw. gerade ein Fenster oder einen Dialog verschieben! Beim nebenläufigen
Kopieren und Verschieben kann man leider aufgrund des langsamen GEMDOS nur
auf schnellen Rechnern mit schneller Platte einigermaßen angenehm innerhalb
von Freedom weiterarbeiten, während er ackert...
Aus Gründen der Übersichtlichkeit können Sie pro Fileselektor nur einen an
diesen gebundenen Such-Dialog öffnen. Durch Rechtsklick auf das Such-Icon
bzw. durch Shift-Control-F lassen sich jedoch weitere ungebundene
Such-Dialoge öffnen, falls sie weitere Suchvorgänge parallel starten
wollen (Der Kopf ihrer Platte will beschäftigt werden! ;->). Die
Aktionen Datei-Zählung, Laufwerks-Information, Löschen, Touch und
Datei-Info lassen sich beliebig oft anwerfen! (Wenn Sie die übersicht
behalten! ;-))
Die Dialoge "Neue Maske eingeben", "Dateien selektieren" und "Dateien
deselektieren" lassen sich (natürlich) nur einmal, gebunden an einen
Fileselektor, öffnen und werden mit dem Schließen desselben ebenfalls
geschlossen.
7. Drag n' Drop
===============
Freedom kann nicht nur per Drag&Drop Dateien an andere Applikationen
weitergeben, sondern auch selbst welche Empfangen (MTOS und AV-D&D).
Allgemein bedeutet dabei:
- Ein Drag mit Shift, das der Ziel-Fileselektor sich schließen und die
'abgeworfenen' Dateien der aufrufenden Applikation weitergeben soll
(Wer die Shift-Taste nicht drücken will, muß die Dateien direkt auf das
Eingabefeld ("Datei:") des entsprechenden Fileselektors ziehen.)
- Ein Drag ohne Umschalttasten: Kopieren (wenn möglich).
- Ein Drag mit Control-Taste: Verschieben (wenn möglich).
- Eine zusätzlich gedrücktes Alt-Taste beim Kopieren/Verschieben:
Objekte vorher umbennen
- Drag auf die Icons: Je nach Icon (o: BTW: Freedoms Icons (Löschen, Info
usw.) können nun auch von "außerhalb" benutzt werden (einfach mal was
draufdraggen)
Die Vorgehensweise
Ziehen Sie Dateien auf eine andere, nicht blockierte Applikation, so
fragt Freedom zuallererst beim AV-Server nach, ob dem die Applikation
bekannt ist, und übergibt dann die Dateien ggf. über den Umweg AV-Server.
Ist kein AV-Server da oder dem die Appl. unbekannt, wird (als letzter
Versuch) ein VA_START an den Besitzer des Fensters (wenn nicht
ermittelbar, an die Appl. 0) versendet. Einige Programme sind fähig, Daten
auch über das MTOS-Drag&Drop (über Pipes) zu empfangen (zB GemView). Sie
können diese Programm in die Freedom-Konfigurationsdatei eintragen.
Freedom könnte immer erstmal das MTOS-Drag&Drop probieren, dann müßte der
Benutzer aber bei den meisten Programmen eine Wartezeit von einigen
Sekunden ertragen.
Neu: Auch das Draggen auf das Pfad-Objekt des Fileselektors ist jetzt mit
einer Bedeutung belegt: Objekt(e) selektieren. Es enspricht dem Draggen
von Objekten auf das Eingabefeld, mit dem Unterschied, das der
Fileselektor nicht geschlossen wird.
8. Das Dateityp-Konzept
=======================
Konnte man in alten Freedom-Versionen einem bestimmten Dateityp nur ein
Bildchen zuordnen, so ist ab der V1.14 noch folgendes weitere
Dateityp-abhängig konfigurierbar:
- eine Typbezeichnung
- Eine Sortierpriorität
- Vorder- und Hintergrundfarben im de- und selektierten Zustand
Eine Zeile aus der Konfigurationsdatei (#FILETYPES) als Beispiel:
Program 19 1 0 1 1 0 *.PRG,*.TOS,*.ACC,*.TTP,*.GTP,*.APP
| | | | | | | |
| | | | | | | +--Maske für diesen Dateityp
| | | | | | +-------Textfarbe (Selektiert)
| | | | | +---------Hintergrund (Selektiert)
| | | | +-----------Textfarbe (Deselektiert)
| | | +-------------Hintergrund (Deselektiert)
| | +----------------Nummer des zugehörigen Images
| +----------------------Sortierpriorität
+-----------------------------Typname (sinnvoll sind kürzere
Bezeichnungen (siehe Desktop Thing)
Der Typname läßt sich per Formatstring (%X) auch in das Verzeichnisfenster
einblenden und taucht ausserdem in einem neuen Popup auf. Im Sortierpopup
läßt sich nun zusätzlich die (natürlich langsamere) Typsortierung
aktivieren. Ist sie aktiviert, wird der Dateityp von Freedom als primäres
Sortierattribut verwendet. Erst, wenn zwei Dateien denselben Typ haben,
werden sie nach dem aktuellen sekundären Attribut (Name, Datum, Größe,
Endung) geordnet. Auch die Reihenfolge, in der die Dateitypen in der
Konfigurationsdatei stehen, hat (wie bei vorherigen Freedom-Versionen)
eine Bedeutung: In genau dieser Reihenfolge wird versucht, den passenden
Typ zu ermitteln. Die allgemeineren Masken sollten also weiter hinten
stehen. Steht beim ersten Dateityp als Maske gleich eine "*.*", so liegen
die anderen Dateitypen natürlich brach!!
9. Konfiguration
================
Freedom läßt sich in weiten Grenzen konfigurieren.
Beeinflussen können Sie neben vielen Unwichtigkeiten folgendes:
- Font, Größe, Farben und Zeilenabstand im Fileselektor
- Position des Scrollbars (links/rechts) im Fileselektor
- diverse Verzögerungszeiten
- Je einen Formatstring für 8.3- und lange Dateinamen
- Ob Groß- oder Kleinbuchstaben verwendet werden sollen
- Ob der Autolocator aktiv ist und ob er auch Ordner matcht
- Ob in Alertboxen alle Knöpfe gleich breit sein sollen
- Wo der Kobold liegt (Environment-Var wird auch gecheckt)
- Wie der Viewer heißt
- Wie Parafin heißt ;-)
- Wie die Funktionstasten belegt sind
- Welche Dateien als Programmdateien interpretiert werden
- Ob Ordner erst auf Doppelklick öffnen
- Ob der Rechtsklick ins Filefenster scrollt (wie bei Thing)
oder (wie überall sonst) einem Doppelklick entspricht
- Ob Hintergrundbedienung von Fensterdialogen aktiv ist
- Ob der Fileselektor in Mausnähe geöffnet wird
- Anzahl der Zeilen/Spalten des Fileselektors
- Bis zu 40 voreinstellbare Files
- Bis zu 40 voreinstellbare Pfade
- Bis zu 40 voreinstellbare Extensions
- Der Pfad, wo die Images (FREEDMxx.IMG) gesucht wird
- Gültigkeitsmasken für die Images
- Applikationen, bei denen Freedom modal kommen soll
- Max. 16 Applikationen, bei denen Freedom garnich kommen soll
- Max. 64 Applikationen, bei denen Freedom den VA_START-Trick oder den
Menubar-Trick anwenden soll
- Ob Freedom auch Alertboxen in Fenster legt
Diese Parameter können (immer noch) nur direkt in der Konfigurations-
datei unter Zuhilfename eines Texteditors verändert werden. Diese Datei ist
aber ausführlich kommentiert, also keine Panik. In einer nächsten Version
wird es ein Setup-Programm geben, mit dem diese Datei komfortabel
modifiziert werden kann. Bestimmte Parameter werden sich auch zur Laufzeit
von Freedom noch veränderen lassen.
Freedom sucht beim Start die Konfigurationsdatei zuerst unter einem Namen,
den er aus der aktuellen Auflösung zusammensetzt (genau, wie die Shell
Gemini) bei 640x400 zB '06400400.CNF', bei 1280x960 dann '12800960.CNF'.
Wird eine solche Datei nicht gefunden, wird noch 'FREEDOM.CNF' versucht,
ansonsten werden die Standardeinstellungen verwendet. Freedom sucht die
Konfigurationsdateien mit shel_find(), was schlicht und einfach bedeutet,
das es die Suche den AES überläßt. Letzteres sucht in der aktuellen
Direktory und allen Direktorys, die in der Environmentvariable $PATH
stehen.
Mittels des Imagepfades ('#IMAGEPATH') in der Konfigurationsdatei kann man
auch für jede Auflösung und Farbtiefe unterschiedliche Imagedateien laden
bzw. mittels der Fonteinstellung via #FONTID etc. verschiedene
Zeichensätze für unterschiedliche Auflösungen bestimmen.
Ein Beispiel:
-------------
akt. Ordner in dem sich auch Freedom befindet:
03200200.CNF
hat Eintrag mit: #IMAGEPATH C:\FREEDOM\FDIMG\SMALL\
06400400.CNF
hat Eintrag mit: #IMAGEPATH C:\FREEDOM\FDIMG\NORMAL\
Dann werden die Icons bei 320x200 Pixel in "C:\FREEDOM\FDIMG\SMALL\"
gesucht. Abhängig von der aktuellen Farbtiefe wird dann dort bei 16 Farben
die Imagedatei 'FREEDM04.IMG' geladen (siehe auch unten). Bei 640x400
Pixeln in 256 Farben würde aus "C:\FREEDOM\FDIMG\NORMAL\" die Datei
'FREEDM08.IMG' als Icon-Satz geladen werden.
WICHTIGE NEUERUNG DER VERSION 1.14 !!!!!
Ein neues Token '#IMAGES' legt fest, als aus wieviel Einzel-Images
bestehend die Imagedatei interpretiert werden soll (was für ein Satz ;-))
Wird kein solches Token in der Konfigurationsdatei gefunden, so wird
garnicht versucht, einen Imagesatz zu laden, sondern gleich der Standard-
satz (bestehend aus einem Ordner-Image ;-)) benutzt. Wird #IMAGES dagegen
explizit auf 0 gesetzt, werden gar keine Images vor dem Text dargestellt.
Erst ein positiver Wert veranlaßt Freedom zu dem Versuch, eine Imagedatei
zu laden. Schlägt das dann fehl, werden ebenfalls keine Images dargestellt.
Einige allgemeine Anmerkungen zum Aufbau der Konfigurationsdatei:
Freedom ließt die Konfigurationsdatei zeilenweise. Zeilen, die mit einem
Semikolon (;) beginnen, werden ignoriert. In allen anderen Zeilen wird
versucht, eines der Schlüsselwörter (z.B. '#AUTOLOCATE') zu erkennen, die
alle mit einem Doppelkreuz (#) beginnen. Wird kein Schlüsselwort erkannt,
wird die Zeile als zum letzen eingelesenen Schlüsselwort zugehörig
angenommen. Bei einigen Optionen wird davon auch Gebrauch gemacht, etwa
bei '#PATHS', wo bis zu 40 Zeilen mit weiteren Pfaden folgen können.
Genauere Informationen zu den einzelnen Optionen finden sich in der
mitgelieferten Beispiel-Konfigurations-Datei, mit der Sie jetzt gleich mal
ihrem Lieblings-Texteditor füttern sollten (Vorher eine Sicherheitskopie
machen!)
9.0 Die Imagedateien
Freedom versucht, nachdem es die Konfigurationsdatei eingelesen hat, auf
dem in der Datei angegeben Pfad eine Datei 'FREEDMxx.IMG' wobei für xx die
aktuelle Anzahl von Planes des Screens eingesetzt wird, also bei einer
monochromen Auflösung FREEDM01.IMG, bei 4 Farben 02, bei 16 Farben 04 usw.
zu laden. Wurde diese Datei gefunden und handelt es sich um ein XIMG mit
genau der angegebenen Anzahl Planes, wird die Datei eingelesen.
Anschließend wird das Image in der Breite durch durch die in der
Konfigdatei angegebene Imageanzahl (#IMAGES) in lauter einzelne Bildchen
geteilt. Ist beispielsweise das Images 64 pixel breit und 16 hoch, und
#IMAGES 4, so wird es in vier Teile, je 16x16 Pixel gross, aufgeteilt.
Die Images aus dieser Datei können später einzelnen Datei-Typen (siehe
Kapitel "Typkonzept") zugeordnet werden.
9.1 Der Format-String
Freedom erlaubt Ihnen, die Daten in dem Fileselektor-Fenster auf fast
beliebige Weise zu formatieren. Ausserdem kann jeweils für normale
8.3-Filesysteme und Filesysteme mit langen Dateinamen ein verschiedener
Formatstring angegeben werden. Es handelt es sich dabei einfach nur um
eine Aneinanderreihung von Zeichen, wobei dem '%' (Prozent) eine
Spezialbedeutung zukommt. Am einfachsten geht's mit einem Beispiel:
Sie möchen, das die Dateien in einer Zeile wie folgt formatiert werden:
:
EVEREST PRG 154.510 29.10.94 09:41
EVEREST INF 840 09.01.95 11:36
:
Also erst der Name, dann die Endung, dann die Größe (mit max. 9 Ziffern),
dann das Datum und schließlich die Uhrzeit ohne Sekunden. Der Formatstring
dafür könnte etwa wie folgt aussehen:
#FORMAT %-F %-E%9P %2D.%2M.%2Y %T%h:%m
Die Stellen, an denen ein '%' steht, weisen Freedom an, eine ganz
bestimmtes Attribut (Name, Größe, Stunde, Minute usw.) der gerade
formatierten Datei an genau dieser Stelle einzusetzen. Welches Attribut
das ist, bestimmt Freedom aus den auf das '%'-Zeichen folgenden Zeichen.
Zur Auswahl stehen:
'F': Dateiname bis zum letzen Punkt (also ohne Endung)
'E': Dateiname ab dem letzten Punkt (also die Endung)
'N': Voller Dateiname (unformatiert)
'D': Tag (1..31)
'M': Monat (1..12)
'Y': Jahreszahl (ohne Jahrhundert, 00..99)
'h': Stunden
'm': Minuten
's': Sekunden
'S': Größe (in Bytes) der Datei ("1345678"), bei Ordnern nichts
'P': 'Punktierte' Größe der Datei ("1.345.678"), bei Ordnern nichts
'K': Größe (in Bytes) der Datei ("1345678"), bei Ordnern '<Ordner>'
'T': Das Uhrensymbol, wenn die Datei tagesaktuell ist, sonst nichts
'A[xx]': Attribut-Bit des Files, default-Zeichen: [-a]
'W[xx]': Schreibgeschützt-Status eines Files, default-Zeichen: [-r]
'H[xx]': Versteckt-Bit des Files, default-Zeichen: [-h]
'Z[xx]': System-Bit des Files, default-Zeichen: [-s]
'X': Typname
'a': Beliebiges ASCII-Zeichen (zB %13a für CR oder %10a für LF)
'%': Das Prozentzeichen
Tabulatoren (als Pseudo-Attribute):
'L': linksbündiger Tabulator (zeichenweise)
'C': zentrierter Tabulator (zeichenweise)
'R': rechtsbündiger Tabulator (zeichenweise)
'l': linksbündiger Tabulator (pixelweise)
'c': zentrierter Tabulator (pixelweise)
'r': rechtsbündiger Tabulator (pixelweise)
(Liste ist für Erweiterungsvorschläge offen)
Das jeweilige Attribut wird von Freedom auf eine Defaultbreite formatiert.
Möchten Sie das Attribut lieber breiter oder schmaler, können Sie die
gewünschte Breite als Wert zwischen dem '%' und dem Attributbuchstaben
eintragen. Freedom formatiert Attribute, die schmaler als die angegebene
Breite sind, rechtsbündig. Möchten Sie ein Attribut lieber linksbündig
formatiert haben, dann platzieren Sie ein '-' (Minus) direkt hinter das
'%' Symbol des Attributes (siehe auch die noch folgenden Beispiele).
Auf einem Filesystem mit langen Dateinamen ist die Aufsplittung eines
Dateinamens in Prefix und Endung nicht mehr so sinnvoll, hier bietet sich
etwa folgender Formatstring an:
#LONGFORMAT %-20N%9P %2D.%2M.%2Y
der als Ergebnis die folgende Ausgabe liefert:
:
EVEREST.PRG 154.510 29.10.94
EVEREST.INF 840 09.01.95
:
welche etwas mehr Platz auch für längere Dateinamen läßt.
Proportionale Fonts
Die Verwendung eines proportionalen Zeichensatzes in Freedom macht nur im
Zusammenspiel mit Freedom's Tabulatoren (%L,%C,%R,%l,%c,%r) Sinn. Eigens
für die Tabulatoren merkt sich Freedom beim Parsen des Formatstrings einen
horizontalen "Cursor". Ein Tabulator in einem Formatstring bewirkt dabei
folgendes: Der Tabulator-Cursor wird um die Breite des Tabulator-
Attributes nach rechts bewegt und dann der Text und die weiteren
"normalen" Attribute hinter diese Tabulator entsprechend der Ausrichtung
dieses Tabulators um diese Cursorposition herum formatiert. %l oder %L
bewirken eine linksbündige Ausgabe rechts von der Cursorposition, %c und
%C bewirken eine zentrierte Ausgabe, wobei die Cursorposition in der Mitte
liegt und schließlich %r bzw. %R bewirken eine rechtsbündige Ausgabe links
vom Cursor. Ein Tabulator formatiert alle Attribute, die nach ihm kommen,
bis zum nächsten Tabulator bzw. bis zum Ende des Formatstrings, als einen
String. Der Offset-Wert jedes weiteren Tabulators wird auf die aktuelle
Tabulator-Cursor-Position aufaddiert, der Wert ist also immer relativ zum
vorherigen Tabulator. Negative Tabulatoren sind erlaubt und Text darf auch
mehrfach übereinander ausgegeben werden, die Ausgabe erfolgt dann
transparent. Ist kein Tabulator aktiv, haben alle Attribute (wie bisher)
eine Default-Breite, bis zu der durch Einfügen von Leerzeichen links oder
rechts des Attributes aufgefüllt wird. Dies ist bei proportionalen Fonts
nicht sinnvoll, weshalb bei aktivem Tabulator die Attribute defaultmäßig
alle ohne Leerzeichen ausgegeben werden (Die Formatierung soll ja durch
den Tabulator erledigt werden). Deshalb sollte gleich das erste "Attribut"
in einem Formatstring für proportionale Fonts ein Tabulator sein. Ein
(häßliches) Beispiel:
%12R%N%6C%P%6L%2D.%2M.%2Y %T%h:%m
das Teilstück "%N" des Formatstrings wird auf 12 Zeichenbreiten
rechtsbündig formatiert. Der Cursor steht dannach 12 Zeichenbreiten vom
linken Rand entfernt. Jetzt kommt ein Zentrier-Tabulator, der den Cursor
zuerst um weitere 4 Zeichen nach rechts bewegt, um dann das Teilstück "%P"
zentriert um diesen Cursor auszugeben. Schließlich kommt ein linksbündiger
Tabulator, der den Cursur um 6 Zeichenbreiten bewegt, um dann rechts davon
den Rest des Formatstrings ("%2D.%2M.%2Y %T%h:%m") auszugeben.
9.2 Der VA_START Trick
Einige Programme, vor allem solche, die Dateien nur anzeigen, können von
Freedom ausgetrickst werden, und während der Fileselektion sogar
weiterlaufen! Die Idee ist sehr einfach: Dem Programm wird beim Aufruf des
Fileselektors vorgegaukelt, der Benutzter hätte sofort 'Abbruch' gedrückt
(das Programm läuft also gleich weiter), in Wirklichkeit ist der
Fileselektor aber noch da, und wenn der Benutzer dann Dateien auswählt,
werden diese dem Programm einfach per VA_START 'nachgereicht'. Einige
Programme, mit denen das klappt, stehen sogar schon in Freedoms
Konfigurationsdatei. Viele Programme machen allerdings Probleme, wenn sie
über VA_START Dateien geliefert bekommen, die nicht existieren, etwa
solche, die der Benutzer gerade neu erzeugen will.. Eine rühmliche
Ausnahme ist der Texteditor Evererst, dem so gut wie alles per VA_START
senden kann. (o: Ein Nachteil der VA_START-Methode ist, das die
Applikation den veränderten Verzeichnispfad nicht mitbekommt und deshalb
beim nächsten Öffnen eines Fileselektors wieder den alten Pfad übergibt.
Wenn eine Applikation aber sowieso VA_START versteht und sie genug Platz
auf dem Screen haben, so behalten sie doch einfach immer einen
Freedom-Fileselektor offen. Aus ihm können Sie dann jederzeit Dateien auf
Fenster einer VA_START verstehenden Applikation draggen.
Der Aufbau einer #VA_START Zeile aus der Konfigdatei:
PAULA Load MODfile
| |
| +--Fileselektortitel, mit dem Freedom vergleichen soll
+---------AES-Programmname
9.3 Der Menubar Trick
Und schon wieder ein neuer Trick: Applikationen, bei denen ein
Fileselektor-Aufruf direkt mit einem Menü-Eintrag verbunden ist, können in
einer neuen Liste in der Konfigdatei (#MENUBAR) für eine uneingeschränkt
nonmodale _Mehrfach_selektion eingetragen werden. Dieses Verfahren hat
gegenüber dem vorher beschriebenen VA_START-Trick den Vorteil, das die
Applikation auch das neue Verzeichnis und die neue Extension mitbekommt.
Die Nummern der Menueinträge können mit dem beiliegendem Programm
MENU_ID.APP ermittelt werden. Wie bei der VA_START Methode kehrt der
Fileselektor beim ersten Aufruf mit Abbruch zurück, und liefert die Files
nachträglich aus. Dazu wird der betreffenden Applikation eine MN_SELECTED
Nachricht gesendet (und damit die Anwahl eine Menüpunktes simuliert), auf
die das Programm dann fsel_[ex]input aufruft. Statt jetzt einen neuen
Fileselektor zu öffnen, wird einfach eins der selektierten Files
zurückgegeben und ggf. erneut MN_SELECTED verschickt. Fertig ist die
Mehrfachselektion. Auch dieses Verfahren klappt nicht immer, es gibt
Programme ohne Menüzeile und solche, die den Fileselektor aus Dialogen
aufrufen. Wir raten ausserdem davon ab, Fileselektoraufrufe der Form
"Speichern als..." hier einzutragen. Dieses Verfahren beinhaltet (noch?)
kein Gedächtnis, welches Applikationsfenster zum Zeitpunkt des
Fsel-Aufrufs das oberste war. Genau das wird aber bei "Speichern als..."
im Normalfall gesichert!! Sinnvoll sind also in dieser Liste nur
vollkommen kontextunabhängige Fileselektor-Aufrufe!
Der Aufbau einer #MENUBAR Zeile aus der Konfigdatei:
PC 8 76 Select Project...
| | | |
| | | +--Fileselektortitel, mit dem Freedom vergleichen soll
| | +--------Objektnummer des zugehörigen Menueintrages (item)
| +----------Objektnummer des zugehörigen Menutitels (title)
+-------------AES-Programmname (hier Pure C)
Die Werte von title und item können mit dem (Schweine- ;-))Programm
MENU_ID.APP (installierbar auch als ACC) einmalig ermittelt werden. Das
Programm ist nur zum Konfigurieren gedacht, und kann (und sollte) danach
wieder terminiert/entfernt werden. Da es auf die Menubars anderer
Programme zugreift, läuft es (im Gegensatz zu Freedom selbst) nicht unter
protected MiNT. Natürlich ist auch die VDI-Ausgabe oben in der Ecke
unschön, aber wie gesagt, man muß das Programm ja nicht dauerhaft
installiert haben. Beachten Sie außerdem, das sich bei einer neuen Version
einer Applikation die Menüpunkte verschieben könnten (sich also der Wert
von "item" und sogar der von "title" ändern könnten) und Sie deshalb ihre
Freedom-Konfiguration uU updaten müssen.
Wir haben den Trick schon mit einer ganzen Menge Programmen ausprobiert.
Als prinzipieller Schwachpunkt stellte sich heraus, daß Freedom sich
darauf verlassen muß, daß die versendete MN_SELECTED Nachricht auch
wirklich vom Programm ausgewertet und mit einem fsel_[ex]input-Call
beantwortet wird (nur so kann das nächste File ausgeliefert werden). Nun
kann es vorkommen, das die Applikation das Auswählen des betreffenden
Menüpunktes genau zu diesem Zeitpunkt nicht zuläßt, etwa, weil es gerade
noch das vorherige File einließt, und deshalb das MN_SELECTED leider
verwirft. Bei dem Programm Everest genügte es, eine Wartezeit von 0.5sec
vor dem Versenden des nächsten MN_SELECTED in Freedom zu integrieren, bei
Pure C funktioniert es (zu unserer Freude ;-)) an sich immer, bei einigen
anderen Programmen wiederum gar nicht. Freedom wartet nach dem versenden
des MN_SELECTED 10sec, bevor es ggf. noch nicht "abgeholte" Dateien
freigibt. Sollte die Applikation das MN_SELECTED geschluckt haben, und der
Benutzer wählt manuell den betreffenen Menüpunkt noch innerhalb der 10sec
an, erscheint deshalb natürlich kein Fileselektor, sondern die weiteren
Files werden so eins nach dem anderen ausgeliefert (also nicht wundern).
Nach Ablauf der 10sec. erscheint bei Anwahl des Menütitels dann wieder der
Fileselektor.
In folgenden Fällen läßt sich das Verfahren leider gar nicht oder nur
sehr schlecht anwenden:
- Applikation hat keine Menüzeile
- Die Applikation benutzt fsel_input statt fsel_exinput, mit dem Erfolg,
das der Fileselektor keinen Titel hat (Defaulttitel "Datei auswählen..."
kommt) und damit keine Unterscheidungsmöglichkeit zu möglichen anderen
Fileselektoraufrufen desselben Programmes besteht (Bsp. SCOOTER), es sei
denn, das Programm ruft nur an einer einzigen Stelle einen Fileselektor
auf.
- Die Applikation benutzt fsel_exinput, übergibt aber schwachsinnigerweise
bei unterschiedlichen Fileselektoraufrufen denselben Titel. Es gilt
dasselbe wie oben (keine Unterscheidungsmöglichkeit)
- Die Applikation öffnet bei Anwahl des betreffenden Menüpunktes erstmal
bzw nach Einlesen der Datei nochmal einen Dialog, um irgendwas vom
Benutzer zu erfragen (wenn sie den schnell genug wegklicken, gehts
vielleicht..)
9.4 Funktionstastenbelegung
Neu seit Freedom 1.11: Die Funktionstasten lassen sich nun vollkommen frei
belegen! Dazu gibt es in der Konfigurationsdatei eine Option #FKTKEYS.
Dahinter wird eine Zeichenkette erwartet, in der die Zeichen von links
nach rechts gelesen die Belegung der Funktionstasten F1 bis F20 (F11 =
Shift-F1) mit einer Auswahl aus Freedom's Funktionen bestimmen. Beispiel:
'A-JKDEFGIH' belegt F1 mit der Funktion A (siehe Liste unten), läßt F2
unbelegt, belegt F3 mit Fkt. J usw. Alle unbelegten Funktionstasten werden
an den AV-Server durchgereicht und können dort dann zB Beispiel das
Starten von Programmen usw auslösen. Speziell für Gemini 1.a Benutzer gibt
es (auch neu) eine Option #NOSENDKEY, durch welche Freedom das Weitergeben
von unbelegten Tastendrücken an den AV-Server generell verboten werden
kann. Hier nun die möglichen Funktionsbuchstaben:
A = Laufwerks-Popup
B = Datei-Popup (gefiltert mit akt. Maske)
C = Extension-Popup
D = Sortierungs-Popup
E = Pfad-Popup
F = Mögliche Extensions-Popup
G = Selektieren nach Maske
H = Deselektieren nach Maske
I = Neue Maske eingeben
J = Objekt suchen (an Selektor gebunden)
K = Neues Objekt erzeugen
L = momentanen Zustand ins Klemmbrett sichern
M = Datei öffnen (anzeigen oder ausführen)
N = Aktuelle Selektion rekursiv zählen
O = History-Popup (gefiltert mit akt. Maske)
P = rekursives Touch auslösen
Q = Zustand aus dem Klemmbrett wiederherstellen
R = Einzel-Info aller selek. Dateien
S = Dateienzählung auf aktuellem Laufwerk
T = Nicht an einem Selektor gebundener Suchdialog öffnen
U = Dateiliste nach Formatstring #NICEFORMAT ins Klemmbrett
V = Datei-Popup (ungefiltert)
W = History-Popup (ungefiltert)
X = Dateityp-Popup
- = Keine Belegung (Weiterleiten an AV-Server)
Zur Konfigurationsdatei noch eine Anmerkung: Alle Pfade und Masken, die
Freedom einliest, werden sofort (je nach Einstellung durch '#LOWERCASE')
(aus optischen Gründen) in Groß- bzw. Kleinbuchstaben gewandelt. (Ist das
nicht gewünscht, bspw. weil ein Pfad auf ein casesensitives Filesystem
weist), kann dem Pfad oder der Maske ein Ausrufezeichen ('!') vorange-
stellt werden. Freedoms Expressionmatch-Routine unterscheidet allerdings
nie zwischen Groß- und Kleinschreibung, auch nicht auf case-sensitiven
Filesystemen.
10. Sie programmieren selbst?
=============================
Freedom kann direkt unterstützt werden. Genaueres dazu finden Sie in der
beiliegenden Datei FDMPROTO.H, sowie SLECTRIC.H und BEISPIEL.C.
Wichtig für Programmierer, die ihrere Programme noch weiterentwickeln und
Konflikten mit Freedom (bzw. seinen Benutzern (o:) aus dem Weg gehen wollen:
Ist der FSEL-Cookie installiert und die Versionsnummer >= 2.00, sollte der
fsel_[ex]input Aufruf NICHT mit BEG/END_MCTRL geklammert werden, ansonsten
IMMER! Mit BEG/END_UPDATE sollte sowieso IMMER geklammert werden!
11. Still to come
=================
- Umsetzung als eCPX unter dem erweiterten Kontrollfeld "Space" von
Christian Grunenberg
- Ein "Set" Feature. Bei beiden Tricks (VA_START/Menubar) und beim
Freedom-Protokoll selbst ist es durchaus möglich, die Dateien zwar an
das betreffene Programm auszuliefern, den Selektor aber für die Auswahl
weiterer Dateien offen zu halten (eben ein Set)
- Beim Konflikt-Dialog (Kopieren/Verschieben) ist es auch denkbar, ein
Umbennen der Originaldatei zuzulassen
- MTOS Path-Drag&Drop (für NEWDESK)
- verbesserter Menubar-Trick
- Ein Setup-Programm, mit dem die Freedom-Konfigurationsdatei komfortabel
editiert werden kann
- Signal- und AP_TERM-Auswertung im Trapper
12. Bekannte Einschränkungen
============================
- Kein Aufruf aus TOS-Programmen. Prinzipiell geht das zwar, wenn
dieselben im VT52/TOSWIN-Fenster laufen), dazu müßte allerdings das
TOS-Programm vom residenten Teil kurzzeitig bei den AES (per appl_init)
angemeldet werden, damit der Datenaustausch mit dem Fileselektor-Server,
der ja über AES-Messages abläuft, funktioniert
- Mit VRAM müssen die Programmflags 'lalt' und 'malt' gelöscht werden!
- Das Zusammenwirken mit vielen "Schweineprogrammen" wurde noch nicht sehr
intensiv getestet
- Der Server verbraucht über 160kB Speicherplatz (Ihr wolltet das
Kopieren/Verschieben!) . Es gibt aus unserer Sicht jedoch keine
Alternative zur Benutzung von EnhancedGEM. Der Verlust vieler Features
und eine um vieles längere Entwicklungsdauer wären die Folge.
- Im MagiC-Singel-Mode wird der Freedom-Server gefreezed, was zur Folge
hat, daß der residente Teil ihn nicht erreicht (Systemselektor kommt),
bzw. einen zweiten nachstartet, wenn ihm ein Pfad in FFSEL.INF gegeben
wurde. Ohne vernünftige MagiC-Doku wird sich an diesem Zustand nichts
ändern...
- Signale unter MiNT werden vom residenten Teil nicht ausgewertet =>
mit jedem Prozess, den Sie mit offenem Fileselektor/Alert terminieren,
(KILL/TERM) geht ihnen einer der 8 'Slots' im Traphandler verloren.
13. Problemkinder
=================
- Alte Versionen der CD-Tools, die bisher mit Freedom funktioniert haben,
stürzen nun beim Aufruf von Dxreaddir durch Freedom ab! Abhilfe: Neuere
Version besorgen. Das gilt für alle MetaDOS-Treiber, die mit dem neuen
Freedom Probleme machen. Freedom ist nicht das einzige Programm, welches
Dxreaddir benutzt, also dulden sie keinen Treiber, der kein Dxreaddir
kann!!
- Falcon TOSe haben ein "erweitertes" Dsetdrv(), das im Zusammenspiel mit
Metados bis zur Version 2.5 dazu führen kann, das bei Programmen, die die
Konstruktion Dsetdrv(Dgetdrv()) benutzen (wie Freedom oder Gemini), uU
Laufwerke plötzlich verschwinden. Metados 2.6 sollte mit diesem Feature
umgehen können.
- MultiDialog. Gute Idee, dürftige Umsetzung. Dieses Programm sollte
überhaupt nicht verwendet werden!
- STZip (2.6) führt keine Redraws aus, wenn sein Fenster im Hintergrund
liegt
- Für das Menüzeilen-Disablen wird das Menü kurz ab- und wieder
angemeldet, im Zusammenhang mit Let' em Fly's Nicelines gibt mit einigen
Programmen das Problem, das sich Menüeinträge verschieben (Böööse!!).
Daran ist Freedom nicht schuld, Letemfly eigentlich auch nicht.
Übeltäter: Pixart (1.2), "Rastaman". Abhilfe: Nicelines abschalten oder
Programme nicht benutzen..
- Letemfly: Wenn sie es unbedingt installieren müssen, dann _nach_
FFSEL.PRG, ansonsten kommt sich offensichtlich die Alertbehandlung
beider Programme ins Gehege.
14. Fragen über Fragen
======================
F: Warum ist Freedom aufeinmal 20kB größer?!
A: Wie vorausgesagt, ist der Einbau des Kopierens/Verschiebens mit
kompletter Fehler- und Konfliktbehandlung (Speichermäßig) etwas teuer
(ca. 10kB) geworden. Ausserdem kommen noch der neue Menubar-Trick und
das Typkonzept dazu. Trotzdem bedenke man folgendes: Dafür, das Freedom
inzwischen schon fast die Funktionalität eines Desktops hat, ist er
mehr als sparsam. Selbst MagXDesk ist ohne Fenster-Dialoge und Kobold-
Unterstützung nur genauso groß. Von den anderen alternativen Desktops
ganz zu schweigen (und jetzt sagt nicht, das wären alles nur die
Farbicons! (o:) Außerdem: Mit welchem anderen Programm könnt Ihr
weiterarbeiten, wenn es kopiert?
F: Immer nach einer bestimmen Zeit erscheint Freedom bei mir aus allen
Programmen nur noch modal, solange, bis ich den ACC-Eintrag anwähle. Es
hängt wohl mit Papyrus zusammen.
A: Offensichtlich wird hier von irgendeinem Programm ein form_dial gesetzt
und nicht mehr zurückgenommen. Dadurch nimmt der Freedom-Trapper
fehlerhafterweise an, es befände sich noch ein Dialog auf dem Screen.
Als (unhandlichen) Workaround haben wir schon vor einiger Zeit
eingebaut, das bei Anwahl des ACC-Eintrages von Freedom das interne
form_dial Feld gelöscht wird. In Freedom 1.14 gibt es zusätzlich noch
die Möglichkeit, die form_dial Abfrage im Trapper ganz auszuschalten
(#NOFORMDIAL), mit dem Risiko, das Freedom bei bestimmten Programmen
als Fenster über einem Dialog erscheint und Bildschirmmüll produziert.
Zu Glück gibt es nur noch ganz wenige Programme, die ihre Dialoge
mittels form_dial/form_do auf den Screen packen und dann aus diesen
Dialogen auch noch einen Fileselektor aufrufen (Mir fällt grad nur noch
GemView ein). Beim Thema Dialoge sollte man als Programmierer wirklich
die Multitaskingfähigkeit höher werten als die lächerliche
Platzersparnis, die man durch den Verzicht auf Fensterdialogroutinen
erreicht (Zumal es letztere in Massen als Freeware gibt!)
Zu Papyrus: Sollte Papyrus wirklich der Übertäter sein, so ist
spätestens ab Papyrus 4.0 ja Schluss damit, da die Entwicklung auf
eine vernünftige Dialoglib umgestellt wurde... (o:
F: Örgs! Freedoms Radiobuttons sind ja jetzt unter monochrom achteckig!
A: Chrisker hat bei dem Versuch, AES-Font-unabhängige runde Radiobuttons
einzubauen, mehrere Stunden mit den VDI-Kreisen gekämpft. Man wird den
Verdacht nicht los, das die Programmierer des VDI nichts von
Algorithmen zum Kreisezeichnen wußten und stattdessen lieber auf die
Random() zurückgegriffen haben.. )o: Der eigentliche Erfolg von
Chriskers Mühen ist deshalb nur zu bewundern, wenn man Freedom unter
>=16 Farben und einem 3D-AES startet. Die Achtecke sind bei kleinerem
AES-Font jedoch nicht mehr von Kreisen bzw. Elipsen zu unterscheiden.
F: Warum bei CPXen der Systemfileselektor?
A: Das ist erstmal eine Sicherheitsmaßname, theoretisch könnte
Freedom auch hier funktionieren, müßte dafür aber deutlich tiefer
ins System einsteigen... Bis auf das das NVDI3 Font-CPX gibt es ja auch
keinen Grund, sich diese Arbeit zu machen, zumal CPXe normalerweise
keinen Fileselector aufrufen, sowieso zu klein, unhandlich und
multitaskingfeindlich sind, ausserdem XControl unsauber programmiert
ist, und... (Aber das würde jetzt zu weit führen.. ;-))
F: Warum kommt bei bestimmten Programmen ohne ersichtlichen Grund
der Systemfileselektor?
A: 1. Das Programm macht AES-Aufrufe vor dem appl_init bzw. macht gar kein
appl_init (Fachbegriff: "Schweineprogramm"..)
2. Bestimmte Programme machen AES-Aufrufe auf unsaubere Weise. Es wird
bei einigen Aufrufen nicht dasselbe global-Feld im AES-Parameter-Block
übergeben, das appl_init initialisiert hat. Oft liegt das daran, das
die Programme mit einer GEM-Lib entwickelt sind, die für einige
"neuere" AES-Funktionen (zB fsel_exinput) keine Bindings hat, so das
der Programmierer sich eigene Bindings machen muss. In denen
benutzt er dann ein anderes global-Feld als die Lib, oft sogar
gezwungenermassen, wenn nämlich gar keine Möglichkeit besteht, an
den GEMPARBLK der Lib zu kommen, weil die Lib in Pascal, Basic o.ae.
geschrieben ist. Die GEM-Lib von Pure Pascal benutzt sogar von sich
aus schon falsche global-Felder. Unter Pure C dagegen ist es sehr
einfach, für eigene Bindings denselben GEMPARBLK wie die Lib zu
verwenden.
Unter MiNT macht das übergeben eines ungültigen global-Feldes sogar
den AES selbst Probleme: In diesem Fall muß nämlich immer erst die
MiNT-ID der Applikation in die Appl-ID gewandelt werden.
Sobald Andreas den Zugriff auf bestimmte AES-interne Informationen von
MagiC3 dokumentiert, wird sich dieses Problem dann (zumindest unter
MagiC) erledigen.
F: Freedom kommt ohne ersichtlichen Grund als modaler Dialog?!
A: Freedom benutzt die MCTRL-Semaphore der AES zur Erkennung von
fliegenden Dialogen, da es in dieseme Fall natürlich nicht als Fenster
kommen darf .. Einige wenige Programme klammern auch den Fileselektor
mit MCTRL (zB Gemini), so daß Freedom annehmen muß, der Fileselektor
wurde aus einem fliegenden Dialog aufgerufen. Wenn dies bei einem
Programm nie der Fall ist, können Sie es in die Ausnahmenliste
('#IGNOREMCTRL') in der Konfigurationsdatei eintragen, Kandidaten dafür
sind zB Gemview, Imploid und Gemini, NICHT jedoch zB CAT und Maxidat,
die beide den Fileselektor auch aus fliegenden Dialogen aufrufen.
Für Programmierer nochmal die folgende Richtlinie:
Ist der FSEL-Cookie installiert und die Versionsnummer >= 2.00, sollte
der fsel_[ex]input Aufruf NICHT mit MCTRL geklammert werden, ansonsten
IMMER! Mit UPDATE sollte sowieso IMMER geklammert werden!
F: Wenn ich Freedom verschiebe, verschwinden urplötzlich die Fenster der
aufrufenden Applikation, sind aber nach Schließen von Freedom alle
wieder da?
A: Es handelt sich um ein prizipielles Problem von Freedom. Da die
aufrufende Applikation auf den Fileselektor wartet, ist niemand da, der
ihre Fenster ggf. neuzeichnen kann. Um Bildschirm-Müll zu vermeiden,
hat Freedom in allen vorherigen Versionen Fenster, für die es eine
Redraw-Anforderung bekommt, mit dem "Freedom"-Logo gefüllt. Das ist
vielfach auf Ablehnung gestoßen, außerdem ist es wenig sinnvoll, die zu
diesem Zeitpunkt funktionslosen Fenster überhaupt auf dem Screen zu
behalten. Der Benutzer kam nur in die "Versuchung", sie zu verschieben,
um in darunterliegenden Fenstern etwas zu machen, und viele Programme
kamen dannach nicht mit den geänderten Fensterpositionen klar. Das neue
Verfahren umgeht alle diese Probleme. Es mag auf den ersten Blick noch
ungewöhlicher sein als das alte, ist jedoch kompatibler und eleganter,
und mit deutlich weniger Aufwand seitens Freedom verbunden.
Für Programmierer: Das alte Verfahren hatte ein weiteres entscheidenes
Problem: Freedom hat zwar nach dem Verschieben von Fenstern der
Applikation ein WM_MOVED, gefolgt von einem WM_REDRAW nachgesendet.
Aber 1. werten viele Applikationen direkt nach der Fileselektion erst
mal keine Nachrichten aus, und 2. kam manchmal ein weiteres, von den
AES verschicktes WM_REDRAW dazwischen, weshalb das WM_MOVED nicht mehr
als erste Nachricht bei der Applikation ankam und damit das Fenster an
einer falschen Position neugezeichnet wurde. Auch können bei etwas mehr
durch Freedom nachgereichte Nachrichten, welche bei Protkollen wie
XAcc zwangsläufig anfallen, uU Nachrichten verlorengehen, was ab einer
bestimmten Obergrenze mit alle bekannten AES-Versionen passiert. Der
(mildeste) Effekt ist, das Applikations-Fenster, die sie während der
Fileselektion verschoben haben, keine Redraw/Moved-Nachrichten
erhalten, obwohl diese (im Sysmon nachvollziehbar!) abgeschickt wurden.
Unter MagiC währe bei vielen Fenstern uU als Workaround statt dem
Versenden der vieler Redraws das Auslösen von SMC_TIDY_UP denkbar...
F: Wenn Kobold oder Parafin, von Freedom aufgerufen, ihr Fenster
schliessen, toppt sich unter MagiC scheinbar zufälliges Fenster?
A: Dieses fehlerhafte Toppen geht von MagiC aus! MagiC versucht zu
verhindern, das das Topwindow und die aktuelle Menüzeile zu
unterschiedlichen Programmen gehören. Dazu läßt es (zur Freude des
Users) beim Schließen des letzten Fensters einer Applikation den
Fensterstapel außer acht. Normalerweise würde dieser Effekt auch
jedesmal auftreten, wenn Freedom sein letztes Fenster schließt (und das
tut es sehr oft!) Zum Glück ist uns da ein Trick eingefallen: Wenn
MagiC vorhanden ist, lowert Freedom das entsprechende Fenster vor dem
Schließen (Wenn man ganz genau hinkuckt, sieht man das auch). Wenn das
letzte Fenster nämlich beim Schließen nicht das oberste ist, verhält
sich MagiC ganz "normal". Bleibt nur zu hoffen, das Andreas sich in
diesem Punkt doch noch über den Willen seine Betatester hinwegsetzt...
Schließlich kann man doch nicht von allen Programmierern verlangen,
diesen Trick einzusetzen...
F: Übersteht Freedom eigentlich einen Auflösungswechsel?
A: Eigentlich ja. Wenn sie ganz sicher gehen wollen, schließen Sie auf
jeden Fall alle Fileselektoren/Alerts von Freedom!!!
F: Warum kommt unter MiNT bei "Load ...." der Systemalert + Fileselektor?
A: Dieser Alert/Fileselektor wird vom AESSYS aufgerufen, und diesem Prozess
sollte man tunlichst NICHT den Faden abnehmen...
F: Warum kommt beim MagiC-Popup "Programm starten.." der Systemfileselektor,
obwohl Selectric da funktioniert?
A: Für diesen Fall hat MagiC eine seperate Fileselektorschnittstelle, die
sich jedoch für Freedom's Zwecke als nicht brauchbar herausgestellt
hat. Deshalb wird an dieser Stelle immer der Systemselektor kommen!
(bzw Selectric, wenn Sie den vor FFSEL in den AUTO-Ordner packen)
F: Ab und zu mal stürzt Gemini 1.a ab, wenn ich in Freedom Tasten drücke,
die Freedom nicht belegt hat!
A: Freedom gibt Tastendrücke an den AV-Server weiter, wenn er sie nicht
kennt. In Gemini 1.a scheint sich ein Fehler eingeschlichen zu haben,
der es beim Emfang von AV_SENDKEY abstürzen läßt. Siehe auch die Option
#NOSENDKEY in Freedom's Konfigurationsdatei.
F: Es gab einen Systemdeadlock/Absturz, während ich Freedom testete...
A: Wir selbst haben Freedom jetzt schon einige Monate bei uns im Einsatz
und keine Schwierigkeiten festgestellt. Allerdings haben wir natürlich
nur mit den Programmen testen können, die wir selbst besitzen. Wenn Sie
also einen "Übeltäter" ausmachen können, der unbedingt noch in
Problemkind-Liste oben reinmuß: Programmname, Version und Effekte an
uns schicken (email-Addressen am Ende dieses Textes)
F: Muss es sein, das Freedom unter SingelTOS einen ACC-Slot belegt?
A: Ja. Es gehört zum Konzept von Freedom, das die eigentliche
Funktionalität des Fileselectors/Alerts in einer parallel laufenden
Applikation realisiert ist und unter SingelTOS geht dies eben leider
nur über Accessories. Mit der eCPX-Umsetzung wird sich das allerdings
ändern!
F: Kann es sein, das einige Einstellungen in der Konfigdatei von Freedom
erst beim 2. Aufruf Wirkung haben (#VASTART, #MENUBAR, #NOALERTS), wenn
Freedom im Nachlademodus betrieben wird?
A: Stimmt, das ist ein prinzipielles Problem, das sich mit dem demnächst
geplanten Umsetzung von Freedom als ein eCPX unter Space löst.
F: Warum sind die drei Imagesätze (FREDOMxx.IMG) so häßlich?
A: Weil Chrisker sie entworfen hat.
F: Warum sind die Funktions-Icons unten links in Freedom so häßlich?
A: Weil Kolja sie entworfen hat.
14. Fast vergessen
==================
Wir übernehmen keine Haftung oder Verantworung für direkte oder indirekte
Schäden jedweder Art, seien sie finanzieller, materieller oder sonstiger
Art, die aus dem Gebrauch, Nichtgebrauch oder Mißbrauch von Freedom ent-
stehen.
Außerdem darf Freedom nicht ohne schriftliches Einverständnis unsererseits
in irgendwelche kommerziellen PD- und Shareware-Sammlungen aufgenommen
werden.
Jetzt ist aber endgültig Schluß:
15. Hau to register:
====================
1. Moeglichkeit:
----------------
DM 30,- (bar, V-Scheck) und ein frankierter und adressierter Rückumschlag
in einen Brief und ab an:
Kolja Koischwitz
Sandhauser Straße 21
13505 Berlin
2. Moeglichkeit:
----------------
30,- überweisen/einzahlen auf das folgende Konto:
Kolja Koischwitz, Konto-Nr. 705 92-100, beim PGiroamt Berlin, BLZ 10010010.
mit einem _eindeutigen_ Vermerk, wer der Überweiser ist!!
Parallel sollten Sie mit uns über Email/Sackpost Kontakt aufnehmen.
Zur Errechnung eines Schlüssels brauchen wir _auf jeden Fall_ folgende
Daten von Ihnen:
Name: ........................
Straße: ........................
PLZ/Ort: ........................
In beiden Fällen erhalten Sie schnellstmöglich einen Schlüssel, mit dem
Sie das Registrierungsprogramm dazu bringen können, ihnen eine
persönliche, uneingeschränkte Programmdatei FREEDOM.APP auuszupacken!
Falls Sie eine Email-Addresse haben, bevorzugt per Email, ansonsten muss
ein frankierter Rückumschlag in ihrem Brief beiliegen.
Ganz nebenbei: Wenn sie unbedingt die neueste Version auf Diskette
zugeschickt haben wollen, dann sollten sie auch eine solche beilegen und
vor allem Rückumschlag/Rückporto nicht vergessen!! Besonders nett wäre,
wenn sie für den zusätzlichen Aufwand unsererseits vielleicht ihren
Sharewarebeitrag von sich aus etwas erhöhen. (o: Da wir drei nur je einen
Anteil an den 30,- erhalten, registrieren wir ansonsten nämlich manchmal
zum Nulltarif oder müssen sogar noch draufzahlen!
Nachfragen können per Email gerichtet werden an:
Kolja: joust@cs.tu-berlin.de
Chrisker: chrisker@cs.tu-berlin.de
Criss: Christian_Grunenberg@lb.maus.de (EnhancedGEM-Library)
Das wars, Kolja & Chrisker